import request from "@/utils/request";
import { createBlobUrlFromVideo } from "@/utils/videoHelper";

/**
 * 提交视频生成任务
 * @param data 视频生成任务参数，包括image_urls(图片URL数组)、prompt(提示词)、aspect_ratio(宽高比)
 * @returns Promise 返回提交结果，包含taskId
 */
export const submitVideoTask = (data: {
  image_urls: string[];
  prompt: string;
  aspect_ratio: string;
}) => {
  return request({
    url: "/jrm/api/send",
    method: "post",
    data
  });
};

/**
 * 查询视频生成任务状态
 * @param taskId 任务ID
 * @returns Promise 返回任务状态和结果
 */
export const getVideoTaskResult = (taskId: string) => {
  return request({
    url: `/jrm/api/select/${taskId}`,
    method: "post"
  });
};

/**
 * 直接上传文件生成视频（新接口）
 * @param file 图片文件
 * @param prompt 提示词
 * @param aspectRatio 宽高比
 * @returns Promise 返回生成结果
 */
export const uploadImageForVideo = (
  file: File,
  prompt: string,
  aspectRatio: string = "9:16"
) => {
  const formData = new FormData();
  formData.append("file", file);

  return request({
    url: `/jrm/api/send?prompt=${encodeURIComponent(prompt)}&aspect_ratio=${aspectRatio}`,
    method: "post",
    data: formData,
    headers: {
      "Content-Type": "multipart/form-data"
    }
  });
};

/**
 * 处理视频URL，解决跨域问题
 * @param videoUrl 原始视频URL
 * @returns 处理后可以播放的视频URL
 */
export const processVideoUrl = (videoUrl: string) => {
  // 如果URL来自抖音或其他外部域名，返回原始URL
  // 在实际播放时，需要调用videoHelper.js中的方法来处理
  return videoUrl;
};


// 获取视频
export const getVideo = (url: string) => {
  return request({
    url: `/jrm/api/download?url=${url}`,
    method: "get",
  });
};
